import Mock from 'mockjs'
/*
    mockjs 用来模拟后台返回数据，拦截ajax请求，自动返回数据
    main.js里面引用，
*/

let tempStr = JSON.stringify({
    result: {}, //返回结果
    targetUrl: null,
    success: true, // 默认都是处理成功
    error: null,
    unAuthorizedRequest: false,
    __abp: true
})

//**************************************************    分类管理      **************************************************
//分类级联选择组件需要的数据
Mock.mock('/api/category/getTreeList', 'post', (params) => {
    let d = JSON.parse(params.body)
    let temp = JSON.parse(tempStr)
    temp.result = [];
    for (let i = 1; i <= 5; i++) {
        temp.result.push({
            id: i,
            parentId: null,
            name: '@cword(2,4)',
            seoTitle: '@cword(20,30)',
            sortRank: '@integer(1,10)',
            showInNav: '@boolean',
            showInSide: '@boolean',
            'children|5': [{
                'id|+1': i * 5 + 1,
                parentId: i,
                name: '@cword(4,6)',
                seoTitle: '@cword(20,30)',
                sortRank: '@integer(1,10)',
                showInNav: '@boolean',
                showInSide: '@boolean',
            }],
        })
    }
    return Mock.mock(temp)
})
Mock.mock('/api/category/save', 'post', JSON.parse(tempStr))
//分类管理 列表页
Mock.mock('/api/category/getAll', 'post', (params) => {
    let d = JSON.parse(params.body)
    return Mock.mock({
        totalCount: 546,
        'items|10': [{
            'id|+1': (d.page - 1) * d.size + 1, // id跟随分页变化
            title: '@cword(20,30)',
            viewCount: '@integer(1,10000)',
            recommend: '@boolean',
            onlySpider: '@boolean',
            focus: '@boolean',
            creationTime: '@date',
        }]
    })
})
//**************************************************    文章管理      **************************************************
// 文章分页列表
Mock.mock('/api/articles/getAll', 'post', (params) => {
    let d = JSON.parse(params.body)
    let temp = JSON.parse(tempStr)
    temp.result['totalCount'] = 546;
    temp.result['items|' + d.size] = [{ // 每页返回数据根据传递的分页大小而变化
        'id|+1': (d.page - 1) * d.size + 1, // id跟随分页变化
        title: '@cword(20,30)',
        viewCount: '@integer(1,10000)',
        recommend: '@boolean',
        onlySpider: '@boolean',
        focus: '@boolean',
        creationTime: '@date(yyyy-MM-dd HH:mm:ss)',
    }]
    return Mock.mock(temp)
})
// 获取修改文章 需要的model数据
Mock.mock('/api/articles/getArticleEditDto', 'post', (params) => {
    let d = JSON.parse(params.body)
    let temp = JSON.parse(tempStr)
    temp.result = {
        id: d.id,
        title: '@cword(20,30)',
        seoTitle: '@title',
        rankKeywords: '@cname',
        description: '@cparagraph',
        content: '@cparagraph(5,10)',
        image: "@image('200x100', '#FF6600')",
        sortRank: 0,
        'recommend|1': true,
        'onlySpider|1': true,
        'focus|1': true,
        //categoryIds: [],
        categoryId: '@integer(1,5)',
        tagIDsOrNewTagNames: ["2", "3"],
    }
    return Mock.mock(temp)
})
//保存文章 直接返回成功
Mock.mock('/api/articles/save', 'post', JSON.parse(tempStr))
//删除文章 直接返回成功
Mock.mock('/api/articles/deletes', 'post', JSON.parse(tempStr))

//**************************************************    标签管理      **************************************************
//标签管理
Mock.mock('/api/tags/getSimpleTags', 'post', (params) => {
    let d = JSON.parse(params.body)
    let temp = JSON.parse(tempStr)
    temp.result['totalCount'] = 546;
    temp.result['items|' + d.size] = [{ // 每页返回数据根据传递的分页大小而变化
        'id|+1': (d.page - 1) * d.size + 1, // id跟随分页变化
        name: '@cword(2,8)',
    }]
    return Mock.mock(temp)
})


//**************************************************    用户 角色 权限      **************************************************
// 文章分页列表
Mock.mock('/api/roles/getAll', 'post', (params) => {
    let d = JSON.parse(params.body)
    let temp = JSON.parse(tempStr)
    temp.result = {
        totalCount: 3,
        items: [
            {
                id: 1,
                name: '系统管理员',
                code: 'Admin',
                isDefault: false,
                isStatic: true,
                description: '系统管理员拥有最高权限，请谨慎开放',
                permissions: ['ArticleManage', 'RoleManage.Create']
            },
            {
                id: 2,
                name: '内容管理员',
                code: 'Editor',
                isDefault: false,
                isStatic: false,
                description: '内容管理员只负责网站内容维护',
                permissions: ['ArticleManage', 'RoleManage.Create']
            },
            {
                id: 4,
                name: '普通会员',
                code: 'Guest',
                isDefault: true,
                isStatic: false,
                description: '新注册的会员默认具备哪些功能',
                permissions: []
            },
        ]
    }
    let totalCount = 5;
    temp.result['totalCount'] = 5;
    temp.result['items|' + d.size <= totalCount ? d.size : totalCount] = [{ // 每页返回数据根据传递的分页大小而变化
        'id|+1': (d.page - 1) * d.size + 1, // id跟随分页变化
        name: '@cword(,30)',
        viewCount: '@integer(1,10000)',
        recommend: '@boolean',
        onlySpider: '@boolean',
        focus: '@boolean',
        creationTime: '@date(yyyy-MM-dd HH:mm:ss)',
    }]
    return Mock.mock(temp)
})

// 获取修改文章 需要的model数据
Mock.mock('/api/users/getAll', 'post', (params) => {
    let d = JSON.parse(params.body)
    let temp = JSON.parse(tempStr)
    temp.result['totalCount'] = 32;
    temp.result['items|' + d.size] = [{ // 每页返回数据根据传递的分页大小而变化
        'id|+1': (d.page - 1) * d.size + 1, // id跟随分页变化
        userName: Mock.Random.name(),
        name: Mock.Random.cname(),
        'isActive|1': true,
        creationTime: '@date(yyyy-MM-dd HH:mm:ss)',
        tagIDsOrNewTagNames: ["2", "3"],
    }]
    return Mock.mock(temp)
})
Mock.mock('/api/users/getUserEditDto', 'post', (params) => {
    let d = JSON.parse(params.body)
    let temp = JSON.parse(tempStr)
    temp.result = { // 每页返回数据根据传递的分页大小而变化
        id:d.id,
        userName: Mock.Random.name(),
        name: Mock.Random.cname(),
        'isActive|1': true,
        'roles': ["Admin",'Editor'], //用户已有角色，可多个
    }
    return Mock.mock(temp)
})
Mock.mock('/api/users/saveUser', 'post', JSON.parse(tempStr))
Mock.mock('/api/users/delete', 'post', JSON.parse(tempStr))
export default Mock;
